function check_length(target_str, len_min, len_max){
	// 检查长度
	// 一个中文算3长度
	str_len = target_str.replace(/[^\x00-\xFF]/g, '***').length;
	if( str_len>len_max || str_len<len_min ){
		return false;
	}
	return true;
}
function check_username(target_str){
	// 检查用户名
	// 小写字母、数字（字母开头）
	reg = /^[a-z][0-9a-z]*$/
	if( !reg.test(target_str) ){
		return false;
	}
	res = check_length(target_str, 6, 20);
	return res;
}
function check_passwd(target_str){
	// 检查密码
	// 任意ascii码，长度6-20之间
	reg =  /^[x00-x7f]*$/
	if( !reg.test(target_str) ){
		return false;
	}
	res = check_length(target_str, 6, 20);
	return res;
}
function check_passwd_confirm(target_str){
	// 检查两次密码是否一致
	if( !check_passwd(target_str) ){
		return false;
	}
	if( $("#form-passwd").val() != target_str ){
		return false;
	}
	return true;
}
function check_realname(target_str){
	// 检查真实姓名
	// 英文、中文和空格
	reg = /^[a-zA-Z\u4E00-\u9FA5 ]*$/
	if( !reg.test(target_str) ){
		return false;
	}
	res = check_length(target_str, 4, 20);
	return res;
}
function check_birthday(target_str){
	// 检查生日
	// 'yyyy-mm-dd'，这里不检查日期逻辑，服务器有检查
	reg =  /^[12][\d]{3}-[\d]{2}-[\d]{2}$/
	return reg.test(target_str);
}
function check_mobile(target_str){
	// 检查手机号
	// 11位数字，以1开头
	reg =  /^1[0-9]{10}$/
	return reg.test(target_str);
}
function check_postcode(target_str){
	// 检查邮编
	// 6位数字，非0开头
	reg =  /^[1-9][0-9]{5}$/
	return reg.test(target_str);
}
function check_address(target_str){
	// 检查地址
	// 任意字符
	res = check_length(target_str, 20, 100);
	return res;
}
function check_itemname(target_str){
	// 检查商品名
	// 英文、中文、数字、括号（全半角）、横杠、斜杠、空格
	reg = /^[a-zA-Z0-9\u4E00-\u9FA5（）\(\)\-\/ ]*$/
	if( !reg.test(target_str) ){
		return false;
	}
	res = check_length(target_str, 6, 30);
	return res;
}
function check_tags(target_str){
	// 检查标签
	// 用逗号（全半角）分隔，不超过5个
	// 每个钟：英文、中文、数字
	reg = /^[0-9a-zA-Z\u4E00-\u9FA5，\,]*$/
	if( !reg.test(target_str) ){
		return false;
	}
	target_str = target_str.replace(/，/g, ',');
	tags = target_str.split(',');
	if(tags.length > 5){
		return false;
	}
	for(index in tags){
		tag = tags[index];
		res = check_length(tag, 4, 12);
		if(!res){
			return false;
		}
	}
	return true;
}
function check_price(target_str){
	// 检查价格
	// 1-8位数字，非0开头
	reg =  /^[1-9][0-9]{0,7}$/
	return reg.test(target_str);
}
function check_detail(target_str){
	// 检查详情
	// 地址只限制长度（一个汉字长度按2算）
	res = check_length(target_str, 20, 1000);
	return res;
}
function check_query(target_str){
	// 检查搜索字段
	// 英文、中文、数字、括号（全半角）、横杠、斜杠、空格
	reg = /^[a-zA-Z0-9\u4E00-\u9FA5（）\(\)\-\/ ]*$/
	if( !reg.test(target_str) ){
		return false;
	}
	res = check_length(target_str, 1, 30);
	return res;
}

function check_by_dict(input_dict){
	inval_class = "input-invalidate";
	val_class = "input-validate";
	for(input_id in input_dict){
		$(input_id).focus(function(eventObject) {
			$(this).removeClass(inval_class);
			$(this).removeClass(val_class);
		});
		$(input_id).blur(
			function(eventObject){
				this_id = "#" + $(this).attr("id");
				check_func = input_dict[this_id];
				target_str = $(this).val();
				if(target_str == ''){
					// 用户还没填写，先不检查
					return
				}
				if(!check_func(target_str)){
					// 未通过检查
					$(this).addClass(inval_class);
				}
				else{
					// 通过检查
					$(this).addClass(val_class);
				}
			}
		);
	}
}

function check_form(input_dict){
	inval_class = "input-invalidate";
	val_class = "input-validate";
	for(input_id in input_dict){
		input_obj = $(input_id);
		input_obj.removeClass(inval_class);
		input_obj.removeClass(val_class);
		check_func = input_dict[input_id];
		target_str = input_obj.val();
		if(!check_func(target_str)){
			// 未通过检查
			input_obj.addClass(inval_class);
			return false;
		}
		input_obj.addClass(val_class);
	}
	return true;
}

function check_search(input_dict){
	inval_class = "input-invalidate";
	val_class = "input-validate";
	is_empty = true;
	for(input_id in input_dict){
		input_obj = $(input_id);
		input_obj.removeClass(inval_class);
		input_obj.removeClass(val_class);
		if(input_obj.val() == ""){
			continue;
		}
		is_empty = false;
		check_func = input_dict[input_id];
		target_str = input_obj.val();
		if(!check_func(target_str)){
			// 未通过检查
			input_obj.addClass(inval_class);
			return false;
		}
		input_obj.addClass(val_class);
	}
	if(is_empty){
		return false;
	}
	return true;
}

function checkImageSize(this_id){
	// 检查图片格式、大小
	var file = $("#" + this_id)[0];
	if(file.files[0].size > 1024*100){
		return false;
	}
	
	return true;
}
